/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modules.legislation.law;

import modules.legislation.datatypes.AntennaAndDistance;
import datatypes.Antenna;
import tools.settings.SettingsMissingException;

/**
 *
 * @author Pieter Backaert
 */
public interface LawInterface {


    /**
     * Checks whether the legislation is violated for a combination of
     *  multiple antenna's
     *
     * @param a AntennaAndDistance[]
     * @return Boolean: true or false
     */
    boolean checkLegislation(AntennaAndDistance[] a) throws SettingsMissingException ;

    /**
     * Returns the E-value limit for a given antenna
     *
     * @param a Antenna
     * @return double: limit-value
     */
    double giveELimit(Antenna a);


    double calculate_E_field_strength(Antenna a , double distance);


    double getSAR_value();
    void setSAR_value(double SAR_value);
}
